Detecting Parallelism in C Programs with Recursive Darta Structures
نویسندگان
چکیده
In this paper we present techniques to detect three common patterns of parallelism in C programs that use recursive data structures. These patterns include, function calls that access disjoint sub-pieces of tree-like data structures, pointer-chasing loops that traverse list-like data structures, and array-based loops which operate on an array of pointers pointing to disjoint data structures. We design dependence tests using a family of three existing pointer analyses, namely points-to, connection and shape analyses, with special emphasis on shape analysis. To identify loop parallelism, we introduce special tests for detecting loop-carried dependences in the context of recursive data structures. We have implemented the tests in the framework of our McCAT C compiler, and we present some preliminary experimental results.
منابع مشابه
Analysis of Parallelism in Recursive Functions on Recursive Data Structures
In functional languages, iterative operations on data collections are naturally expressed using recursive functions on recursive data structures. In this paper, we present a method to extract data parallelism from recursive functions and generate data parallel programs. As the parallel model for object programs, we use polytypic parallel skeletons. This model can express data parallel operation...
متن کاملAn Analytical Method Forparallelization of Recursive
Received (received date) Revised (revised date) Communicated by Christian Lengauer ABSTRACT Programming with parallel skeletons is an attractive framework because it encourages programmers to develop eecient and portable parallel programs. However, extracting parallelism from sequential speciications and constructing eecient parallel programs using the skeletons are still diicult tasks. In this...
متن کاملAn Analytical Method for Parallelization of Recursive Functions
Programming with parallel skeletons is an attractive framework because it encourages programmers to develop e cient and portable parallel programs. However, extracting parallelism from sequential speci cations and constructing e cient parallel programs using the skeletons are still di cult tasks. In this paper, we propose an analytical approach to transforming recursive functions on general rec...
متن کاملEstimation of Parallel Complexity with Rewriting Techniques
We show how monotone interpretations – a termination analysis technique for term rewriting systems – can be used to assess the inherent parallelism of recursive programs manipulating inductive data structures. As a side effect, we show how monotone interpretations specify a parallel execution order, and how our approach extends naturally affine scheduling – a powerful analysis used in paralleli...
متن کاملConcrete data structures and functional parallel programming
We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed structures called arrays. We nd that arrays' symmetric replicated structures, suggested by the data-paralle...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1998